#include "VGridLabel.h"

#ifndef VEDITOR_H
#define VEDITOR_H

#include <QString>
#include <QPushButton>
#include <QLabel>
#include <QWidget>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QComboBox>
#include <QFileDialog>

// Interface graphique de l'éditeur
class VEditor: public QWidget
{
    Q_OBJECT

private:
    QLabel *create_new_building_label;
    QPixmap *create_new_building_pixmap;
    QPushButton *create_new_building;
    QLabel *create_new_gate_label;
    QPixmap *create_new_gate_pixmap;
    QPushButton *create_new_gate;
    QPushButton *create_new_map;
    QComboBox *create_new_grid;
    QPushButton *load_new_map;
    QPushButton *save_new_map;
    QPushButton *quit_editor;
    VGridLabel *grid_label;
    QPixmap *grid_image;
    QWidget *tools;
    QWidget *map;
    QVBoxLayout *v_layout_tools;
    QVBoxLayout *v_layout_map;
    QHBoxLayout *h_layout;
    QHBoxLayout *h_layout1;
    QHBoxLayout *h_layout2;
    QHBoxLayout *h_layout3;
    CEditor *editor_data;
    int current_grid; // Grille affichée à l'écran

public:
    VEditor(QWidget *parent = 0);
    ~VEditor();
    void recreate_map(); // Regénère une carte chargée depuis un fichier

public slots:
    void new_building(); // Crée un nouveau bâtiment
    void new_gate(); // Crée une nouvelle porte
    void new_grid(int i); // Change la grille en cours
    void new_map(); // Crée une nouvelle carte
    void show_map(); // Affiche une carte
    void load_map(); // Charge une carte depuis un fichier
    void save_map(); // Sauvegarde une carte
    void quit(); // Quitte l'éditeur
};

#endif
